长期尚未解决的VB>WINSOCK文件传输

来源:百度知道 编辑:UC知道 时间:2024/06/21 08:03:27
用VB>WINSOCK>TCP传文件,因为WINSOCK的缓冲区只有8000KB左右,不能装下大于8000KB的文件,所以要把文件 拆开来发送,可是发送端该怎么拆文件呢?! 接受端该怎么接受文件呢! 很长时间都没有得到正确的答案 着急,那位大侠能帮帮忙? 写个测试成功的代码,而且简单一些的,越简单越好的! 谢谢!

发送端拆文件:

Open Filename For Binary Access Read As #1
Dim bytBuf(4096) As Byte
for i = 0 to NumberOfPacket
Get #1, , bytBuf()
winsockName.senddata bytBuf
doevents '让系统有时间发送数据包
next
Close #1

这里NumberOfPacket是要计算整个文件分多少个包(上面假设每个包为4096字节),注意最后一个包很可能小于4096字节,这时要用
redim bytBuf(lastPacketSize)

接收端:
在winsockName_DataArrival事件中将接收到的文件内容连起来

ReDim DataReceived(1 To bytesTotal) As Byte
winsockName.GetData DataReceived()

Open Filename For Binary Access Write As #2
Put #2, , DataReceived()
Close #2